Repository Public
1// Vrai-Prix — admin méthode du coût : déclenche une synchronisation en arrière-plan (jeton requis).2import { NextRequest, NextResponse } from "next/server";3import { adminAuth, launchConnector } from "@/lib/cost/connectors/admin";4import { isRunnable, IMPORT_ONLY } from "@/lib/cost/connectors/registry";56export const runtime = "nodejs";7export const maxDuration = 25;89export async function POST(req: NextRequest, { params }: { params: Promise<{ connector: string }> }) {10 const denied = adminAuth(req);11 if (denied) return denied;12 const { connector } = await params;13 if (IMPORT_ONLY.includes(connector as never)) return NextResponse.json({ error: `${connector} : import manuel seulement (POST /api/admin/cost/benchmarks/import)` }, { status: 400 });14 if (!isRunnable(connector)) return NextResponse.json({ error: "connecteur inconnu" }, { status: 404 });15 const force = req.nextUrl.searchParams.get("force") === "1";16 const items = req.nextUrl.searchParams.get("items")?.split(",").map((s) => s.trim()).filter(Boolean);17 const r = launchConnector(connector, force, items);18 return NextResponse.json({ connector, ...r }, { status: r.started ? 202 : 409 });19}20